// 放一些我们通用的验证的

interface CheckCondition {
  format?: string[]; //检查它是什么样的格式
  size?: number; // 每个上传图片的大小
}
type ErrorType = "size" | "format" | null;

// file: 我们要检查的文件
// condition： 用什么样的条件去检查
export function beforUpLoadCheck(file: File, condition: CheckCondition) {
  const { format, size } = condition;
  //   判断格式是否合法
  const isValidFormat = format ? format.includes(file.type) : true;
  //   判断图片是否合法
  const isValidSize = size ? file.size / 1024 / 1024 < size : true;
  let error: ErrorType = null;
  if (!isValidFormat) {
    error = "format";
  }
  if (!isValidSize) {
    error = "size";
  }
  return {
    passed: isValidFormat && isValidSize,
    error,
  };
}
